#include "tcp.h"
#include "Cola.h"
#include "log.h"
#include <string>
#include <unistd.h>
#include "MensajeroTCP.h"
#include "mensajes/Mensaje.h"

int main(int argc, char* argv[]){

    if(argc < 3){
	log(stdout, "Uso: %s id_usuario host\n", argv[0]);
	exit(-1);
    }

    long idUsuario = atol(argv[1]);
    char *host = argv[2];
    log("Inicio de un emisor para el usuario %ld, host %s\n", idUsuario, host);
    int socket = tcpopact(host, 12345);
    if(socket <= 0){
	perror("Error al abrir el socket emisor");
	log("El socket emisor es %d\n", socket);
	sleep(20);
	exit(-1);
    }

    Cola cola(FTOK_PATH, ID_COLA_OUTBOX);
    
    std::vector<char> mensaje;
    MensajeroTCP mensajero(socket);

    log(stdout, "%d: Emisor listo para emitir\n", getpid());

    while(cola.recibir(idUsuario,mensaje)){
	log(stdout, "emito mensaje de tamanio %d\n", mensaje.size());
	mensajero.enviarMensaje(mensaje);
    }

    log(stdout, "Emisor sale\n");

    sleep(20);
    
    return 0;
}
